<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<!--edge浏览器H5兼容设置-->
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<!--360浏览器H5兼容设置-->
		<meta name="renderer" content="webkit" />
		<title>学子商城</title>
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<!--导入核心文件-->
		<script src="../bootstrap3/js/holder.js"></script>
		<script src="../bootstrap3/jquery-1.9.1.min.js"></script>
		<script src="../bootstrap3/js/bootstrap.js"></script>
		<!-- 字体图标 -->
		<link rel="stylesheet" type="text/css" href="../bootstrap3/css/bootstrap.css">
		<link rel="stylesheet" type="text/css" href="../bootstrap3/font-awesome-4.7.0/css/font-awesome.css" />
		<link rel="stylesheet" type="text/css" href="../css/layout.css" />
		<link rel="stylesheet" type="text/css" href="../css/top.css" />
		<link rel="stylesheet" type="text/css" href="../css/footer.css" />
		<link rel="stylesheet" type="text/css" href="../css/cart.css" />

		<link rel="stylesheet" href="../css/element-plus@2.3.9_dist_index.css" />
		<script src="../js/vue@3.3.4.global.js"></script>
		<script src="../js/element-plus@2.3.9_dist_index.full.js"></script>
		<script src="../js/axios.js"></script>
		<script src="../js/request.js"></script>
	</head>

	<body id="myCart">
		<!--头部-->
		<header class="header">
			<!--学子商城logo-->
			<div class="row">
				<div class="col-md-3">
					<a href="index.html">
						<img src="../images/index/stumalllogo.png" />
					</a>
				</div>
				<!--快捷选项-->
				<div class="col-md-9 top-item">
					<ul class="list-inline pull-right">
						<li><a href="favorites.html"><span class="fa fa-heart"></span>&nbsp;收藏</a></li>
						<li class="li-split">|</li>
						<li><a href="orders.html"><span class="fa fa-file-text"></span>&nbsp;订单</a></li>
						<li class="li-split">|</li>
						<li><a href="cart.html"><span class="fa fa-cart-plus"></span>&nbsp;购物车</a></li>
						<li class="li-split">|</li>
						<li>
							<!--下列列表按钮 ：管理-->
							<div class="btn-group">
								<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown">
									<span id="top-dropdown-btn"><span class="fa fa-gears"></span>&nbsp;管理 <span class="caret"></span></span>
								</button>
								<ul class="dropdown-menu top-dropdown-ul" role="menu">
									<li><a href="password.html">修改密码</a></li>
									<li><a href="userdata.html">个人资料</a></li>
									<li><a href="upload.html">上传头像</a></li>
									<li><a href="address.html">收货管理 </a></li>
								</ul>
							</div>
						</li>
						<li class="li-split">|</li>
						<li><span class="fa fa-user"></span>&nbsp;{{username}}</li>
					</ul>
				</div>
			</div>
		</header>
		<!--导航 -->
		<!--分割导航和顶部-->
		<div class="row top-nav">
			<div class="col-md-6">
				<ul class="nav nav-pills">
					<li>
						<a href="#"></a>
					</li>
					<li class="active"><a href="index.html"><span class="fa fa-home"></span></a></li>
					<li><a href="#">秒杀</a></li>
					<li><a href="#">优惠券</a></li>
					<li><a href="#">学子VIP</a></li>
					<li><a href="#">外卖</a></li>
					<li><a href="#">超市</a></li>
				</ul>
			</div>
			<div class="col-md-6">
				<form action="search.html" class="form-inline pull-right" role="form">
					<div class="form-group">
						<input type="text" class="form-control" id="search" name="search" placeholder="请输入商品名称进行搜索">
					</div>
					<button type="submit" class="btn btn-default btn-sm"><span class="fa fa-search"></span></button>
				</form>
			</div>
		</div>
		<!--头部结束-->
		<!--导航结束-->
		<div class="container">
			<div class="col-md-offset-1 col-md-10">
				<div class="panel panel-primary">
					<div class="panel-heading">
						<p class="panel-title"><span class="fa fa-shopping-cart"></span> 购物车</p>
					</div>
					<div class="panel-body">
						<form role="form">
							<!--购物车表格开始-->
							<table class="cart-table" width="100%">
								<thead>
									<tr>
										<th width="8%">
											<input v-model="checked" type="checkbox" class="ckall" @click="checkAll()" />全选</th>
										<th width="110"></th>
										<th width="29%">商品</th>
										<th width="11%">单价</th>
										<th width="15%">数量</th>
										<th width="11%">金额</th>
										<th>操作</th>
									</tr>
								</thead>
								<tbody class="cart-body">
									<tr v-for="item in cartList">
										<td><input type="checkbox" class="ckitem" v-model="item.checked"/></td>
										<td><img :src="item.image" class="img-responsive" /></td>
										<td>{{ item.title }}</td>
										<td>¥<span id="goodsPrice1">{{ item.price }}</span></td>
										<td>
											<input type="button" value="-" class="num-btn" @click="myUpdateNum(item.id,-1)" />
											<input id="goodsCount1" type="text" v-model="item.num" size="2" readonly="readonly" class="num-text">
											<input type="button" value="+" class="num-btn" @click="myUpdateNum(item.id,1)" />
										</td>
										<td>¥<span id="goodsCast1">{{ item.num*item.price }}</span></td>
										<td><input type="button" @click="delCartItem(item.id)" class="cart-del btn btn-default btn-xs" value="删除" /></td>
									</tr>
								</tbody>
							</table>
							<div class="total-bar">
								<a  @click="selDelCart" class="cart-del-sel btn btn-default btn-xs">删除所选商品</a>
								<span class="pull-right">
									已选商品<b id="selectCount">{{selectedIds.length}}</b>件，
									总价¥<b id="selectTotal">{{ selectedSumPrice }}</b>元
								</span>
							</div>
							<div>
								<span class="pull-right">
									<input type="button" value="  结  算  " class="btn btn-primary btn-lg link-account" @click="handleClickToAccount"/>
								</span>
							</div>
						</form>
					</div>
				</div>
			</div>
		</div>
		<!--页脚开始-->
		<div class="clearfix"></div>
		<footer class="footer">
			<!-- 品质保障，私人定制等-->
			<div class="text-center rights container">
				<div class="col-md-offset-2 col-md-2">
					<span class="fa fa-thumbs-o-up"></span>
					<p>品质保障</p>
				</div>
				<div class="col-md-2">
					<span class="fa fa-address-card-o"></span>
					<p>私人订制</p>
				</div>
				<div class="col-md-2">
					<span class="fa fa-graduation-cap"></span>
					<p>学生特供</p>
				</div>
				<div class="col-md-2">
					<span class="fa fa-bitcoin"></span>
					<p>专属特权</p>
				</div>
			</div>
			<!--联系我们、下载客户端等-->
			<div class="container beforeBottom">
				<div class="col-md-offset-1 col-md-3">
					<div><img src="../images/index/stumalllogo.png" alt="" class="footLogo" /></div>
					<div><img src="../images/index/footerFont.png" alt="" /></div>
				</div>
				<div class="col-md-4 callus text-center">
					<div class="col-md-4">
						<ul>
							<li>
								<a href="#">
									<p>买家帮助</p>
								</a>
							</li>
							<li><a href="#">新手指南</a></li>
							<li><a href="#">服务保障</a></li>
							<li><a href="#">常见问题</a></li>
						</ul>
					</div>
					<div class="col-md-4">
						<ul>
							<li>
								<a href="#">
									<p>商家帮助</p>
								</a>
							</li>
							<li><a href="#">商家入驻</a></li>
							<li><a href="#">商家后台</a></li>
						</ul>
					</div>
					<div class="col-md-4">
						<ul>
							<li>
								<a href="#">
									<p>关于我们</p>
								</a>
							</li>
							<li><a href="#">关于达内</a></li>
							<li><a href="#">联系我们</a></li>
							<li>
								<span class="fa fa-wechat"></span>
								<span class="fa fa-weibo"></span>
							</li>
						</ul>
					</div>
				</div>
				<div class="col-md-4">
					<div class="col-md-5">
						<p>学子商城客户端</p>
						<img src="../images/index/ios.png" class="lf">
						<img src="../images/index/android.png" alt="" class="lf" />
					</div>
					<div class="col-md-6">
						<img src="../images/index/erweima.png">
					</div>
				</div>
			</div>
			<!-- 页面底部-备案号 #footer -->
			<div class="col-md-12 text-center bottom">
				Copyright © 2018 Tedu.cn All Rights Reserved 京ICP备08000853号-56 <a target="_blank" style="font-size: 12px" href="http://www.tedu.cn/">达内时代科技集团有限公司</a>
				版权所有
			</div>
		</footer>
		<!--页脚结束-->
		<script src="../js/cart.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
		</script>
	<script>
		const app = Vue.createApp({
			data(){
				return {
					username: localStorage.getItem("username"),
					token: localStorage.getItem("token"),
					updateNum:0,
					cartList:[],
					selectedIds: [],
					selectedSumPrice: 0,
					checked: false,
					ids: []
				}
			},
			methods:{
				async myUpdateNum(id,num){
					console.log(num)
					if(this.updateNum!==0){
						ElementPlus.ElMessage({
							message: "请勿频繁操作",
							type:"warning"
						});
					return
					}
					this.updateNum=1
					let res= await request({
						url: `/api/cart/${id}/${num}`,
						method: 'put',
					})
					//console.log(res)
					this.updateNum=0
					this.search()
				},

				async search(){
					let selectedIds = []
					let res= await request({
						url: `/api/cart/list`,
						method: 'post',
						data: selectedIds
					})
					if(res.code === 20000) {
						this.cartList = res.data
					}
					for (let item of this.cartList) {
						item.checked = false; // 设置初始值为false
					}
					//console.log(this.cartList)
					//console.log(res)
				},
				//购物车单条删除
				async delCartItem(itemId){
					let res= await request({
						url: `/api/cart/delete/${itemId}`,
						method: 'delete',
					})
					if (res.code===20000){
						ElementPlus.ElMessage({
							message: "删除成功",
							type:"success"
						});
						// this.cartList = this.cartList.filter(e=>e.id != itemId)
						await this.search()
					}
				},
				//批量删除
				async selDelCart(){
					const  ids = this.cartList.filter(e=>e.checked).map(e=>{
						return{
							ids:e.id+''
						}
					})
					if(ids.length===0){
						// 未选择
						return
					}
					// console.log(ids)
					let res= await request({
						url: `/api/cart/deleteMore`,
						method: 'delete',
						data:ids
					})
					if (res.code===20000){
						ElementPlus.ElMessage({
							message: "删除成功",
							type:"success"
						});
					this.cartList = this.cartList.filter(e=>ids.map(e=>e.ids).includes(e.id+''))

					}
				},
				checkAll() {
					let checked = event.target.checked;
					this.cartList.forEach(item => item.checked = checked);
					//console.log(checked)
				},
				handleClickToAccount() {
					// 判断是否有选中的商品，如果没有，提示用户选择商品
					if (this.selectedIds.length === 0) {
						ElementPlus.ElMessage({
							message: "请选择商品",
							type:"warning"
						});
						return;
					}
					location.href = "orderConfirm.html";
				}

			},

			watch: {
				cartList: {
					deep: true,
					immediate: true,
					handler(newCartList) {
						this.selectedIds = newCartList
								.filter(item => item.checked)
								.map(item => item.id);
						if(this.selectedIds.length === this.cartList.length)
							this.checked = true;
						else this.checked = false;
						//console.log(this.selectedIds);
						this.selectedSumPrice = newCartList
								.filter(item => item.checked)
								.reduce((sum, cur) => sum + cur.num*cur.price, 0);
						// 动态存储到本地存储
						localStorage.setItem("selectedIds", JSON.stringify(this.selectedIds));
					}
				}
			},
			mounted(){
				this.search()
			}
		})
		app.use(ElementPlus)
		app.mount('#myCart');
		if(localStorage.getItem("token")===null){
			location.href="login.html";
		}
	</script>
	</body>

</html>
